package archer.framework.security.utils;


import archer.framework.security.ArcherSecurityModule;
import archer.framework.security.apitenant.ApiTenant;

/**
 * api租户工具类
 *
 * @author christ
 * @date 2015/8/10
 */
public class ApiTenantContext {

    private static ThreadLocal<ApiTenant> apiTenants = new ThreadLocal<>();

    /**
     * 将当前api租户信息保存到线程变量中
     *
     * @param apiTenant
     */
    public static void setApiTenant(ApiTenant apiTenant) {

        apiTenants.set(apiTenant);
    }

    /**
     * 获得当前ApiTenant对象
     *
     * @return
     */
    public static ApiTenant getApiTenant() {

        return apiTenants.get();
    }

    /**
     * 获得当前api租户信的apiKey
     *
     * @return
     */
    public static String getApikey() {

        if (getApiTenant() != null) {
            return getApiTenant().getApikey();
        }
        return null;
    }

    /**
     * @return
     */
    public static String getType() {

        if (getApiTenant() != null) {
            return getApiTenant().getType();
        }
        return null;
    }

    public static long getTokenTimeout() {

        if (getApiTenant() != null) {
            return getApiTenant().getTokenTimeout();
        }
        return ArcherSecurityModule.defaultTokenTimeout;
    }
}
